package com.ruoyi.db.domain.system;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 【用户订单】对象 mp_client_order
 * 
 * @author ruoyi
 * @date 2022-07-23
 */
@ApiModel(value = "MpClientOrder",description = "【用户订单】对象 mp_client_order")
public class MpClientOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单Id */
    private String orderId;

    /** 商城用户ID */
    @ApiModelProperty(value="商城用户ID",name="MpClientOrder$clientId")
    private Long clientId;

    /** 订单状态 */
    @ApiModelProperty(value="订单状态",name="MpClientOrder$orderStatus")
    @Excel(name = "订单状态",readConverterExp = "101=待支付,201=待发货,3=待收货,4=已完成")
    private Long orderStatus;

    /** 产品ID */
    @ApiModelProperty(value="产品ID",name="MpClientOrder$proId")
    private Long proId;

    /** 产品购买数量 */
    @ApiModelProperty(value="产品购买数量",name="MpClientOrder$proCount")
    private Long proCount;

    /** 产品套餐ID */
    @ApiModelProperty(value="产品套餐ID",name="MpClientOrder$proComboId")
    private Long proComboId;

    /** 人民币付款金额 */
    @ApiModelProperty(value="人民币付款金额",name="MpClientOrder$rmbPay")
    @Excel(name = "人民币付款金额")
    private BigDecimal rmbPay;

    /** 金藻付款额 */
    @ApiModelProperty(value="金藻付款额",name="MpClientOrder$goldBeanPay")
    @Excel(name = "金藻付款额")
    private BigDecimal goldBeanPay;

    /** 银藻付款额 */
    @ApiModelProperty(value="银藻付款额",name="MpClientOrder$silverBeanPay")
    @Excel(name = "银藻付款额")
    private BigDecimal silverBeanPay;

    /** 付款时间 */
    @ApiModelProperty(value="付款时间",name="MpClientOrder$payTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 用户收货地址ID*/
    @ApiModelProperty(value="用户收货地址ID",name="MpClientOrder$addressId")
    private Long addressId;

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    /** 银藻付款额 */
    @ApiModelProperty(value="订单金额",name="MpClientOrder$orderAmount")
    @Excel(name = "订单金额")
    private BigDecimal orderAmount;

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    @ApiModelProperty(value="支付方式.1微信,2金藻",name="MpClientOrder$payType")
    private String payType;

    public String getLogisticsNumber() {
        return logisticsNumber;
    }

    public void setLogisticsNumber(String logisticsNumber) {
        this.logisticsNumber = logisticsNumber;
    }

    public Long getExpressId() {
        return expressId;
    }

    public void setExpressId(Long expressId) {
        this.expressId = expressId;
    }

    @ApiModelProperty(value="物流单号",name="MpClientOrder$logisticsNumber")
    @Excel(name = "物流单号")
    private String logisticsNumber;
    @ApiModelProperty(value="快递编码",name="MpClientOrder$expressId")
    private Long expressId;
    //用户购物车项ID集合
    private Long[] subCartIds;

    public Long[] getSubCartIds() {
        return subCartIds;
    }

    public void setSubCartIds(Long[] subCartIds) {
        this.subCartIds = subCartIds;
    }

    public String getMasterImg() {
        return masterImg;
    }

    public void setMasterImg(String masterImg) {
        this.masterImg = masterImg;
    }

    private String masterImg;
    private String cMasterImg;
    private String startTime;

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    private String endTime;

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactMobile() {
        return contactMobile;
    }

    public void setContactMobile(String contactMobile) {
        this.contactMobile = contactMobile;
    }
    @Excel(name = "联系人名称")
    private String contactName;
    @Excel(name = "联系人电话")
    private String contactMobile;
    @Excel(name = "产品名称")
    private String combName;

    public String getCombName() {
        return combName;
    }

    public void setCombName(String combName) {
        this.combName = combName;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }
    private String province;

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getCounty() {
        return county;
    }

    public void setCounty(String county) {
        this.county = county;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    private String city;

    private String county;
    @Excel(name = "联系人地址")

    private String address;

    public List<MpClientSubOrder> getSubOrders() {
        return subOrders;
    }

    public void setSubOrders(List<MpClientSubOrder> subOrders) {
        this.subOrders = subOrders;
    }

    private List<MpClientSubOrder> subOrders;

    public String getcMasterImg() {
        return cMasterImg;
    }

    public void setcMasterImg(String cMasterImg) {
        this.cMasterImg = cMasterImg;
    }

    public Long getAddressId() {
        return addressId;
    }

    public String getPayPassword() {
        return payPassword;
    }

    public void setPayPassword(String payPassword) {
        this.payPassword = payPassword;
    }

    private String payPassword;

    public void setAddressId(Long addressId) {
        this.addressId = addressId;
    }


    private String proName;
    @ApiModelProperty(value="商城类型1金藻,2银藻",name="MpClientOrder$sellType")
    private Integer sellType;

    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }

    public Integer getSellType() {
        return sellType;
    }

    public void setSellType(Integer sellType) {
        this.sellType = sellType;
    }

    public String getProComboName() {
        return proComboName;
    }

    public void setProComboName(String proComboName) {
        this.proComboName = proComboName;
    }

    public String getClientName() {
        return clientName;
    }

    public void setClientName(String clientName) {
        this.clientName = clientName;
    }

    public String getClientMobile() {
        return clientMobile;
    }

    public void setClientMobile(String clientMobile) {
        this.clientMobile = clientMobile;
    }

    private String proComboName;
    private String clientName;
    private String clientMobile;

    public void setOrderId(String orderId) 
    {
        this.orderId = orderId;
    }

    public String getOrderId() 
    {
        return orderId;
    }
    public void setClientId(Long clientId) 
    {
        this.clientId = clientId;
    }

    public Long getClientId() 
    {
        return clientId;
    }
    public void setOrderStatus(Long orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public Long getOrderStatus() 
    {
        return orderStatus;
    }
    public void setProId(Long proId) 
    {
        this.proId = proId;
    }

    public Long getProId() 
    {
        return proId;
    }
    public void setProCount(Long proCount) 
    {
        this.proCount = proCount;
    }

    public Long getProCount() 
    {
        return proCount;
    }
    public void setProComboId(Long proComboId) 
    {
        this.proComboId = proComboId;
    }

    public Long getProComboId() 
    {
        return proComboId;
    }
    public void setRmbPay(BigDecimal rmbPay) 
    {
        this.rmbPay = rmbPay;
    }

    public BigDecimal getRmbPay() 
    {
        return rmbPay;
    }
    public void setGoldBeanPay(BigDecimal goldBeanPay) 
    {
        this.goldBeanPay = goldBeanPay;
    }

    public BigDecimal getGoldBeanPay() 
    {
        return goldBeanPay;
    }
    public void setSilverBeanPay(BigDecimal silverBeanPay) 
    {
        this.silverBeanPay = silverBeanPay;
    }

    public BigDecimal getSilverBeanPay() 
    {
        return silverBeanPay;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("clientId", getClientId())
            .append("orderStatus", getOrderStatus())
            .append("proId", getProId())
            .append("proCount", getProCount())
            .append("proComboId", getProComboId())
            .append("rmbPay", getRmbPay())
            .append("goldBeanPay", getGoldBeanPay())
            .append("silverBeanPay", getSilverBeanPay())
            .append("payTime", getPayTime())
            .toString();
    }
}
